16 - Data Visualization
Answers to exercises
:::
1.
Given the following data on the world’s cargo carrying capacity in millions of dead weight tons (dwt) for the given years, graph the relationship as a point plot. Add a linear prediction model to the graph. What is the approximate increase in the world capacity each year?
dwt <- c(2566, 3704, 4008, 5984, 7700, 8034, 8229, 7858, 8408, 8939)
year <- c(1970, 1980, 1990, 2000, 2006, 2007, 2008, 2009, 2010, 2011)
library(ggplot2)
dwt <- c(2566, 3704, 4008, 5984, 7700, 8034, 8229, 7858, 8408, 8939)
year <- c(1970, 1980, 1990, 2000, 2006, 2007, 2008, 2009, 2010, 2011)
df1 <- data.frame(year, dwt)
# ggplot
ggplot(df1,aes(year, dwt)) +
geom_point(color = 'red') +
xlab('Year') +
ylab('Millions of dead weight tons') +
ylim(0,10000)
3.
Visualize in blue the number of items for each product scale.
library(ggplot2)
library(DBI)
library(RMySQL)
# connect to the database
conn <- dbConnect(RMySQL::MySQL(),"www.richardtwatson.com", dbname = "ClassicModels", user = "student", password = "student")
# Query the database and create file for use with R
d <- dbGetQuery(conn,"SELECT productScale from Products;")
# Plot the number of product lines by specifying the appropriate column name
# Internal fill color is blue
# ggplot
ggplot(d,aes(productScale)) +
geom_bar(fill = 'blue') +
xlab('Product scale') +
ylab('Frequency')
5.
Create a histogram with appropriate labels for the value of orders received from the Nordic countries (Denmark, Finland, Norway, Sweden).
library(ggplot2)
library(DBI)
library(RMySQL)
# connect to the database
conn <- dbConnect(RMySQL::MySQL(),"www.richardtwatson.com", dbname = "ClassicModels", user = "student", password = "student")
# Query the database and create file for use with R
d <- dbGetQuery(conn,"SELECT country, sum(quantityOrdered*priceEach) AS orders FROM Orders, OrderDetails, Customers WHERE Orders.orderNumber = OrderDetails.orderNumber and Customers.customerNumber = Orders.customerNumber AND country IN ('Denmark','Finland', 'Norway','Sweden') GROUP BY countr
# ggplot
ggplot(d,aes(country, orders)) +
geom_col(fill = 'yellow') +
xlab('Country') +
ylab('Orders')
7.
Show on a Google map the customers in Japan.
library(ggplot2)
library(DBI)
library(ggmap)
# connect to the database
conn <- dbConnect(RMySQL::MySQL(),"www.richardtwatson.com", dbname = "ClassicModels", user = "student", password = "student")
# Query the database and create file for use with R
d <- dbGetQuery(conn,"SELECT y(officeLocation) AS lon, x(officeLocation) AS lat FROM Offices;")
map <- get_googlemap('tokyo, japan',marker=d,zoom=5)
ggmap(map) + labs(x = 'Longitude', y = 'Latitude') + ggtitle('Japanese offices')
9.
Access http://www.richardtwatson.com/data/manheim.txt, which contains details of the sales of three car models: X, Y, and Z.
9a.
Create a bar chart for sales of each model (X, Y, or Z)
library(ggplot2)
library(readr)
url <- 'http://www.richardtwatson.com/data/manheim.txt'
t <- read_delim(url, delim=',')
# ggplot
ggplot(t,aes(model)) +
geom_bar(fill = 'lightgreen')
11.
Read the table http://www.richardtwatson.com/data/wealth.csv containing details of the wealth of various countries. Create histograms for each of the wealth measures. Use the list of valid colors to give a bit of color to your graphics.
library(ggplot2)
library(readr)
url <- 'http://www.richardtwatson.com/data/wealth.csv'
t <- read_delim(url, delim=',')
# ggplot
ggplot(t, aes(`GDP per capita`)) +
geom_histogram(fill='firebrick')
ggplot(t, aes(`GDP per capita`)) +
geom_histogram(fill='darkorange')
ggplot(t, aes(`GDP per capita`)) +
geom_histogram(fill='darkolivegreen')